오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
찾기 및 참조
MATCH 함수
엑셀 2003
찾기 및 참조
MATCH 함수
엑셀-MATCH-함수-사용법
함수 요약

엑셀 MATCH 함수는 범위 안에서 찾을 값의 위치 순번을 반환하는 함수입니다.

함수 구문
=MATCH(찾을값, 범위, [일치옵션])
찾을값
-
범위에서 찾으려는 값입니다.
범위
-
값을 검색할 범위입니다.
  • 범위는 반드시 단일행 또는 단일열이여야 합니다. (가로/세로로 긴 형태)
  • 그렇지 않을 경우, MATCH 함수는 #N/A 오류를 반환합니다.
일치옵션
-
[선택인수]검색 방법을 지정합니다. 기본 값은 작거나 같은값 검색(=1) 입니다.
  • 1 (또는 생략) : [기본값] 오름차순 정렬에서 찾을값보다 작은 값 중 가장 큰 값을 찾습니다.
  • 0 : 정확히 일치
  • -1 : 내림차순 정렬에서 찾을값보다 큰 값중 가장 작은 값을 찾습니다.
상세 설명

엑셀 MATCH 함수는 범위에서 지정한 값을 찾은 후, 해당 항목이 몇 번째 위치하는지 순번을 반환하는 함수입니다.

=MATCH("사과",{"배","귤","사과","포도","복숭아"})
/ / 범위에서 사과의 순번인 '3'을 반환합니다.

MATCH 함수는 주로 INDEX 함수와 함께 사용되며, VLOOKUP 함수보다 유연하고 강력한 검색 기능을 구현할 수 있습니다.

=INDEX({100,200,300,400,500},3)
/ / 범위에서 3번째 값인 '300'을 반환합니다.
=INDEX(가격범위,MATCH("사과",제품범위))
/ / 제품 범위에서 "사과"를 찾아, 제품의 가격을 반환합니다.

INDEX/MATCH 공식의 동작 원리는 아래 기초 입문 강의에서 알기 쉽게 정리했으니 참고해주세요!😊


MATCH 함수 간단 예제
1) 직원 목록에서 특정 이름의 위치 찾기

A2:A6 셀에 직원 이름이 작성된 경우, 아래 함수는 범위에서 김영희 직원의 위치 순번을 반환합니다.

=MATCH("정지웅",A2:A6,0)
=MATCH("정지웅", {"김선지", "최상혁", "정지웅", "황호성", "전숙경"}, 0)
/ / 정지웅 직원의 위치 순번인 '3'을 반환합니다.
2) "상혁"으로 끝나는 이름의 위치 찾기

MATCH 함수는 와일드카드 검색을 지원합니다. 다음과 같이 함수를 작성하면, "상혁"으로 끝나는 직원 이름의 위치를 반환합니다.

=MATCH("*상혁", {"김선지", "최상혁", "정지웅", "황호성", "전숙경"}, 0)
/ / 상혁으로 끝나는 직원 이름의 위치 순번인 '2'를 반환합니다.
3) 50,000 이하 중 가장 큰 값의 위치 찾기

MATCH 함수의 일치 옵션을 활용하면, 작거나 같은 값 중 가장 큰 값을 검색할 수 있습니다. 아래 함수는 50,000 보다 작은 값 중, 가장 큰 값의 위치 순번을 반환합니다.

=MATCH(50000, {20000, 30000, 40000, 50000, 60000, 70000}, 1)
/ / 50000보다 작은 값 중 가장 큰 값의 순번인 '3'을 반환합니다.

자주 묻는 질문
1) MATCH 함수의 결과값으로 옳지않은 값이 출력됩니다.

MATCH함수가 잘못된 결과를 반환할 경우, 함수의 일치옵션을 확인합니다. 만약 1(작거나 같은 값) 또는 -1(크거나 같은 값)으로 설정한 경우, 범위는 반드시 오름차순 또는 내림차순으로 정렬되어야 합니다.

=MATCH(100,{128,90,82,87,164},1)
/ / 범위가 오름차순으로 정렬되지 않아, 잘못된 순번인 '4'를 반환합니다.
=MATCH(100,{82,87,90,128,164},1)
/ / 100보다 작은 값 중 가장 큰 값인 90의 순번인 '3'을 반환합니다.

그 외 주의사항

만약 찾을 값이 없거나 범위가 단일행 또는 단일열이 아닐 경우 함수는 #N/A 오류를 반환합니다.

일치 옵션을 1(작거나 값은 값) 또는 -1(크거나 값은 값)으로 설정한 경우, 범위는 반드시 오름차순 또는 내림차순으로 정렬해야 합니다.

찾을값이 문자이고, 일치옵션이 정확히일치(=0)일 경우에는 와일드카드(*,?,~)를 사용할 수 있습니다.

MATCH 함수는 찾은 값의 위치 순번을 반환합니다. 해당 순번의 실제 값을 얻으려면 INDEX 함수를 함께 사용합니다.


댓글 20
4.7 (12개 평가)
neum****
neum**** 2020.06.18 01:42
유용한 정보 감사드립니다.
calroid
calroid 2021.02.07 02:01
매칭함수를 이용해서 특정한 값을 가져올려고 할려면 어떻게 해야 하나요.
예를들어서
브랜드 이름 상품번호 색깔번호 이렇게 있을때
브랜드 이름과 상품번호를 매치시켜서 색깔번호를 가져올려면 어떻게 하면 좋을까요?
상품번호가 중복이 많아서
브랜드에 상품번호가 일치했을때 색깔번호를 가져올수 있는 함수가 필요 합니다 ㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2021.02.10 15:51
VLOOKUP 다중조건 공식을 사용해보세요.
https://www.oppadu.com/vlookup-%ed%95%a8%ec%88%98-%eb%8b%a4%ec%a4%91%ec%a1%b0%ea%b1%b4-%ea%b2%80%ec%83%89/
컴활제발
컴활제발 2021.04.27 14:20
match 함수는 배열 영역을 가로 세로 방식의 matrix 방식으로 잡으면 N/A가 뜨나요?
오빠두엑셀
오빠두엑셀 작성자 2021.04.27 21:47
안녕하세요.
네 맞습니다. Match 함수는 가로로 긴 1행 또는 세로로 긴 1열 대상으로만 올바르게 동작합니다. :)
넓은 배열을 범위로 입력하면 오류가 발생합니다.
knlee
knlee 2021.07.16 13:02
너무나 좋은 내용에 평소에 큰 도움을 받고 있습니다. 한가지 궁금한 점은 INDIRECT 함수를 이용하여 동적 범위를 MATCH 함수의 범위에 적용시켰을 때, 만일 동적범위의 값이 1개 밖에 없는 경우에는 #N/A로 반환됩니다. 혹시 이러한 경우에 1개인 값을 올바르게 반환하는 방법이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2021.07.16 23:56
안녕하세요.
아쉽게도 INDRECT 함수로는 동적범위를 참조할 수 없습니다. INDIRECT 함수로 동적범위를 참조하시려면, 표 기능을 사용하셔야 합니다.
=INDIRECT("표이름[필드명]")
으로 입력해서 사용해보세요.
감사합니다!
선화밍
선화밍 2021.08.10 09:40
감사합니다.
pyou****
pyou**** 2021.09.25 02:03
좋은자료 감사합니다
멍때린다
멍때린다 2022.05.28 17:21
좋은 강의 감사드립니다. 질문이 하나 있는데요,

한 셀에 여러 텍스트가 입력된 경우에 MATCH함수를 사용하기 위해 와일드카드 *를 사용할 때,

예를 들어 참조 범위에 "인도"와 "인도네시아"가 있는 경우, '인도'를 찾기 위해 인수로 "*"&인도&"*"를 입력할 경우 '인도네시아'를 찾아버리는 문제를 해결하고 싶은데 뾰족한 수가 없습니다 ㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2022.05.31 15:18
안녕하세요.
말씀하신 내용은 로직상 인도, 인도네시아가 모두 검색되는 것이 맞습니다.
인도만 검색하려면 찾을 값으로 "인도"만 검색하셔야 합니다.^^
IF 함수로 정확히 일치할 경우, 포함할 경우를 나누어 검색되도록 함수를 작성해보세요.
왕바우
왕바우 2023.01.21 10:10
오빠두 짱!
후
2023.02.08 15:21
그럼 match 함수에서 서로 다른 문자를 찾을 땐 옵션 항목이 어떻게 되는건가요?
오빠두엑셀
오빠두엑셀 작성자 2023.02.09 17:36
안녕하세요.
아래와 같이 사용해보세요.
=MATCH(1,--(범위<>값),0)
후
2023.02.11 19:41
말씀해 주신걸 토대로 해보려고 했는데 이해가 잘 되지 않습니다.
예를 들면
노란색 파란색 기타색 이라는 데이터에서 초록색이라는 글자를 찾으려 할때 이건 3번째 값인 기타색으로 가야하잖아요.

그러면 =match("초록",--({"노란색","파란색","기타색"}<>"초록색"),0) 이렇게 해야한다는 소린가요? <<이렇게 해봤으나 안되긴 했음..ㅜㅜ
오빠두엑셀
오빠두엑셀 작성자 2023.02.14 14:15
=match(1,--(범위<>"초록색")*(범위<>"파란색")*(범위<>"기타색"),0)
을 사용해보세요.
아래 강의를 참고해서 수식을 수정해보시길 바랍니다.
https://www.oppadu.com/%ec%a7%84%ec%a7%9c%ec%93%b0%eb%8a%94-%ec%8b%a4%eb%ac%b4%ec%97%91%ec%85%80-7-5-4/
강민준🤗
강민준🤗 2024.08.11 07:34
좋은 강의 감사합니다🙇‍♂️